package cn.txun.csmall.product.schedule;

import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
@Slf4j
public class CacheSchedule {
    // fixedRate：执行频率，以毫秒为单位,以上次程序开始时间计算间隔时间
    //@Scheduled(fixedRate = 1000*5)
    //fixedDelay：执行频率，以毫秒为单位,以上次程序结束时间计算间隔时间
    //cron取值为一个字符串，此字符串是一个表达式，包含6~7个值，各个值之间用空格隔开
    //--在cron表达式中，各值从左至右分别是：秒 分 时 日 月 周 【年】
    //--各值均可使用通配符
    //--使用星号(*)表示任意值
    //--使用问号(?)表示不关心此值，此通配符仅可以用于"日"和”周“
    //-- 各个值可以使用x/y格式的值，其中，x表示起始值，ye表示间隔周期，
    //   以”分“位置为例 取值为1/5，表示分的值为1时开始执行，且每间隔5分钟执行一次
    //   "0/30 * * * * ？"：表示每分钟的0秒时执行，且每30秒执行一次
    // -- L:可以用在每月最后一天
    //   "0 15 10 L * ?" 表示每个月的最后一天上午10:15分执行任务。
    //示例： 56 34 12 13 2 ? 2024  表示：2024年2月13日12：34：56执行任务，不关心当天是周几
    //https://blog.csdn.net/study_665/article/details/123506946
    //https://baijiahao.baidu.com/s?id=1761866232950907868&wfr=spider&for=pc
    @Scheduled(cron = "0 0/5 0 ? 6 MON")
    public void xx(){
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        log.debug("CacheSchedule-----------.xx");
    }
}
